# 1.　三合一
# 2. 练习独立完成
# 3.
# [
# ["00", "01", "02", "03"],
# ["10", "11", "12", "13"],
# ["20", "21", "22", "23"],
# ]
# 在二维列表中，获取13位置，向左，3个元素
# 在二维列表中，获取22位置，向上，2个元素
# 在二维列表中，获取03位置，向下，2个元素

class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    @staticmethod
    def left():
        return Vector(0, -1)

    @staticmethod
    def up():
        return Vector(-1, 0)

    @staticmethod
    def down():
        return Vector(1, 0)

    @staticmethod
    def get_elements(target, vector_pos, vector_dir, count):
        """
        在二维列表中获取指定位置，指定方向，指定数量的元素.
        :param target: 二维列表
        :param vector_pos: 指定位置
        :param vector_dir: 指定方向
        :param count: 指定数量
        :return: 列表
        """
        list_result = []
        for i in range(count):
            vector_pos.x += vector_dir.x
            vector_pos.y += vector_dir.y
            element = target[vector_pos.x][vector_pos.y]
            list_result.append(element)
        return list_result


list01 = [
    ["00", "01", "02", "03"],
    ["10", "11", "12", "13"],
    ["20", "21", "22", "23"],
]
re01 = Vector.get_elements(list01, Vector(1, 3), Vector.left(), 3)
print(re01)
re02 = Vector.get_elements(list01, Vector(2, 2), Vector.up(), 2)
print(re02)
re03 = Vector.get_elements(list01, Vector(0, 3), Vector.down(), 2)
print(re03)
